package com.xiguanlezz.cn.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface RpcReference {
    // 要调用的服务提供者的版本
    String version() default "1.0";

    // 要调用的服务提供者的分组
    String group() default "";

    // 注册中心实现方式
    String registryType() default "zookeeper";

    // 注册中心的地址
    String registryAddress() default "127.0.0.1:2181";

    // 动态代理方式
    String dynamicProxyType() default "jdk";

    // 序列化方式
    String serializableType() default "protobuf";

    // RPC调用方式
    String invokeMethodType() default "sync";

    // RPC调用的超时时间
    long invokeTimeout() default 500;

    // 负载均衡策略
    String loadBalanceType() default "rand";
}
